package com.example.text.service.serviceImpl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.text.dao.JotterArticleDao;
import com.example.text.entity.Notice;
import com.example.text.service.JotterArticleService;
import org.springframework.beans.factory.annotation.Autowired;


import org.springframework.stereotype.Service;

import java.util.Date;


@Service
public class JotterArticleServiceImpl extends ServiceImpl<JotterArticleDao, Notice> implements JotterArticleService {

    @Autowired
    JotterArticleDao jotterArticleDao;
    public void addOrUpdate(Notice article){
        Notice notice = jotterArticleDao.selectOne(new QueryWrapper<Notice>().eq("id", article.getId()));
        article.setArticleDate(new Date());
        if(notice !=null){
            this.updateById(article);
        }else {
            this.save(article);
        }
    }

    public IPage<Notice> selectJotterArticlePage(Page<Notice> page) {
        // 不进行 count sql 优化，解决 MP 无法自动优化 SQL 问题，这时候你需要自己查询 count 部分
        // page.setOptimizeCountSql(false);
        // 当 total 为非 0 时(默认为 0),分页插件不会进行 count 查询
        // 要点!! 分页返回的对象与传入的对象是同一个
        return jotterArticleDao.selectPageVo(page);
    }

   public IPage<Notice> selectPersonalArticlePage(Page<Notice> page, String username){

        return jotterArticleDao.selectPageVoByName(page,username);
    }

    public Notice selectById(int id){

        return  jotterArticleDao.selectByIds(id);
    }


}
